Інформація про навчальний заклад

ВУЗ:
Національний технічний університет України Київський політехнічний інститут
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Не вказано

Інформація про роботу

Рік:
2022
Тип роботи:
Лабораторна робота
Предмет:
Програмування

Частина тексту файла

Національний технічний університет України «Київський політехнічний інститут імені Ігоря Сікорського» Навчально-науковий інститут атомної та теплової енергетики Кафедра цифрових технологій в енергетиці ЛАБОРАТОРНА РОБОТА №6 з дисципліни «Програмування на мові Java» Варіант № 9 Тема: Перевизначення методів класу Object Мета: Розробити консольний додаток.. Завдання: Розробити консольний додаток, що відповідає вимогам, наведеним у кожному зпідпунктів завдання. Коректно перевизначити для кожного класу методи equals(), hashCode(), toString(). 1. Створити об’єкт класу Text, використовуючи клас Paragraph. Методи забезпечують можливість: Доповнення тексту; Виведення тексту на консоль; Виведення заголовку тексту. 2. Створити об’єкт класу Ukraine, використовуючи клас Region (область). Методи забезпечують можливість: Виведення в консоль столиці; Виведення кількості областей; Виведення площі; Виведення обласних центрів. У звіті аргументувати використання кожного з методів у відповідних класах, з огляду на поставлене завдання. Якщо окремі класи або окремі перевизначені методи класу Object не відповідають завданню і їх використання є недоцільним, зазначити це у звіті. Виконання роботи: Створюємо консольний додаток, та створюємо необхідні класи. / Завдання 1: Створюємо класи «Text» та «Paragraph»: Клас «Text»: package lr6; import java.util.ArrayList; import java.util.Scanner; public class Text { String title; ArrayList<Paragraph> paragraphs; public Text(String title, ArrayList<Paragraph> paragraph) { this.title = title; this.paragraphs = paragraph; } public void getParagraphs() { StringBuilder text = new StringBuilder(); for (Paragraph paragraph : paragraphs) { text.append(paragraph.text).append("\n\n"); } System.out.println(text); } public void addParagraph() { Scanner sc = new Scanner(System.in); String paragraphString = sc.nextLine(); Paragraph newParagraph = new Paragraph(paragraphString); for (Paragraph paragraph : paragraphs) { if (paragraph.equals(newParagraph)) { System.out.println("This paragraph is already in the text!\n"); return; } } System.out.println("\n"); paragraphs.add(newParagraph); } public void getTitle() { System.out.printf("\t << %s >> \n\n", this.title); } @Override public String toString() { StringBuilder text = new StringBuilder(); for (Paragraph paragraph : paragraphs) { text.append(paragraph.text).append("\n\n"); } return String.format("\t << %s >> \n\n%s", this.title, text); } } У класі «Text» перевизначено метод toString(), щоб можна було вивести об’єкт цього класу одною командою у консоль : Text ukraineArticle = new Text("Ukraine", paragraphs); System.out.println(ukraineArticle); Клас «Paragraph»: package lr6; public class Paragraph { String text; public Paragraph(String text) { this.text = text; } @Override public boolean equals(Object obj) { if (this == obj) return true; Paragraph paragraph = (Paragraph) obj; return this.text.equals(paragraph.text); } @Override public String toString() { return text; } @Override public int hashCode() { return text.hashCode(); } } У класі «Paragraph» перевизначено методи equals(), hashCode(), щоб можна було коректно порівняти екземпляри цього класу під час додавання до масиву параграфів, уникаючи дубляж тексту. Якщо ми перевизначаємо методи equals() то ми повинні і перевизначити метод hashCode(), тому що hashCode() повертає ціле число, яке представляє поточний екземпляр класу. Може виникнути така ситуація коли екземпляри класу будуть мати однакові поля, але будуть повертати різні хеш-коди. Код «Main»: package lr6; import java.util.ArrayList; import j...
Антиботан аватар за замовчуванням

18.10.2023 12:10

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини